home *** CD-ROM | disk | FTP | other *** search
/ Alles Voor Internet / Tout Pour Internet / alles voor internet.iso / MacInternet™ / Telnet / NCSA / tn3270 2.3d26 source / tn3270 / addswt.c < prev    next >
C/C++ Source or Header  |  1991-01-21  |  4KB  |  135 lines

  1. /*
  2.  *  tn3270 for the Macintosh Source Code
  3.  *  Brown University Computing and Information Services
  4.  *  Version 2.3d21, January 17, 1991
  5.  *  Copyright (c) 1988, 1989, 1990, 1991 by Brown University and by
  6.  *  Peter John DiCamillo.
  7.  *
  8.  *  Permission is granted to any individual or institution to use, copy,
  9.  *  or redistribute the binary version of this software and its
  10.  *  documentation provided this notice and the copyright notices are
  11.  *  retained.  Permission is granted to any individual or non-profit
  12.  *  institution to use, copy, modify, or redistribute the source files
  13.  *  of this software provided this notice and the copyright notices are
  14.  *  retained.  This software may not be distributed for profit, either
  15.  *  in original form or in derivative works, nor can the source be
  16.  *  distributed to other than an individual or a non-profit institution.
  17.  *  Any  individual or group interested in seeing and/or using these
  18.  *  source files but who are prevented from doing so by the above
  19.  *  constraints should contact Don Wolfe, Assistant Vice-President for
  20.  *  Computer Systems at Brown University, (401) 863-7250, for possible
  21.  *  software licensing of the source developed at Brown.
  22.  *
  23.  *  Brown University and Peter John DiCamillo make no representations
  24.  *  about the suitability of this software for any purpose.
  25.  *
  26.  *  BROWN UNIVERSITY AND PETER JOHN DICAMILLO GIVE NO WARRANTY, EITHER
  27.  *  EXPRESS OR IMPLIED, FOR THE PROGRAM AND/OR DOCUMENTATION PROVIDED,
  28.  *  INCLUDING, WITHOUT LIMITATION, WARRANTY OF MERCHANTABILITY AND
  29.  *  WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE.
  30.  *
  31.  */
  32.  
  33. #include "maclib.h"
  34.  
  35. main(argc, argv)
  36. int argc; char * argv[];
  37. {
  38. OSErr rc;
  39. char * vname;
  40.  
  41. short vref, fref, sizeattrs;
  42. long vsize, fsize;
  43. Handle sizehandle;
  44. struct {
  45.     short flags;
  46.     long prefsize;
  47.     long minsize;
  48.     } sizersc;
  49. char fname[128];
  50. char test;
  51.  
  52. if (argc < 2) {
  53.     printf("A fileid must be specified to addswt\n");
  54.     return;
  55.     }
  56. strcpy(fname, argv[1]);
  57. test = argc > 2;
  58.  
  59. /* get size of Mac3270 resource fork */
  60. /*     rc = GetVInfo(8, vname, &vref, &vsize);
  61.     if (rc != 0) {
  62.         printf("Error %d from GetVInfo.\n", rc);
  63.         return(rc);
  64.         }   */
  65. vref = 0;
  66. rc = OpenRF(fname, vref, &fref);
  67. if (rc != 0) {
  68.     printf("Error %d from OpenRF.\n", rc);
  69.     return(rc);
  70.     }
  71. rc = GetEOF(fref, &fsize);
  72. FSClose(fref);
  73. if (rc != 0) {
  74.     printf("Error %d from GetEOF.\n", rc);
  75.     return(rc);
  76.     }
  77.  
  78. /* construct switcher resource to be added */
  79.  
  80. sizersc.flags = 0x5880;
  81. sizersc.prefsize = (((fsize+102400L+1023L)/1024L) + 100) << 10;
  82. sizersc.minsize = (((fsize+102400L+1023L)/1024L) + 61) << 10;
  83. if (test) sizersc.prefsize += (270 << 10);
  84.  
  85. /* add new resource to Mac3270 */
  86. fref = OpenResFile(fname);
  87. rc = ResError();
  88. if (rc != 0) {
  89.     printf("Error %d  from OpenResFile.\n", rc);
  90.     return(rc);
  91.     }
  92. sizehandle = NewHandle(10L);
  93. memcpy(*sizehandle, &sizersc, 10);
  94. AddResource(sizehandle, 'SIZE', -1, "Switcher/MF sizes");
  95. rc = ResError();
  96. if (rc != 0) {
  97.     printf("Error %d from AddResource.\n", rc);
  98.     CloseResFile(fref);
  99.     DisposHandle(sizehandle);
  100.     return(rc);
  101.     }
  102. sizehandle = GetResource('SIZE', -1);
  103. rc = ResError();
  104. if (rc != 0) {
  105.     printf("Error %d from GetResource.\n", rc);
  106.     CloseResFile(fref);
  107.     DisposHandle(sizehandle);
  108.     return(rc);
  109.     }
  110. sizeattrs = GetResAttrs(sizehandle);
  111. rc = ResError();
  112. if (rc != 0) {
  113.     printf("Error %d from GetResAttrs.\n", rc);
  114.     CloseResFile(fref);
  115.     DisposHandle(sizehandle);
  116.     return(rc);
  117.     }
  118. sizeattrs |= resPreload;
  119. SetResAttrs(sizehandle, sizeattrs);
  120. rc = ResError();
  121. if (rc != 0) {
  122.     printf("Error %d from SetResAttrs.\n", rc);
  123.     CloseResFile(fref);
  124.     DisposHandle(sizehandle);
  125.     return(rc);
  126.     }
  127. CloseResFile(fref);
  128. rc = ResError();
  129. if (rc != 0) {
  130.     printf("Error %d from CloseResFile.\n", rc);
  131.     }
  132. DisposHandle(sizehandle);
  133. return(rc);
  134. }
  135.